`ifndef	DEFS_NEWLABEL_DONE
`define DEFS_NEWLABEL_DONE
`timescale 1 ns/1 ps

package definitions;

//extract_mode
`define LINE_E		3'b001
`define STRIPE_E	3'b010
`define HYPER_E		3'b011
`define COMPACT_E	3'b100
`define STRUCTURE_E 3'b101

//label_mode
`define LINE_L 		2'b01
`define STRIPE_L	2'b10
`define HYPER_L		2'b11
`define NONE_L		2'b00

typedef struct packed
{
	logic[11:0]	Root;
	logic[11:0]	EntryID;
	logic[11:0]	SP;
	logic[11:0]	EP;
}Line_struct_t;


///////////////////////////// for Verification //////////////////////////////
	//synopsys translate_off
function integer clogb2;
input [31:0] depth;
	begin
		for(clogb2=0; depth>0; clogb2=clogb2+1)
			depth = depth >> 1;
	end
endfunction

typedef enum logic {	//NOP,               
        READ=1'b0,
        WRITE=1'b1
        } Bus_OP_t;

`define PF(NM, F)  printer.print_field(`"NM`", NM, $bits(NM), F);
	//synopsys translate_on

endpackage

import	definitions::*;

`endif

